package cap;

import java.io.*;
import java.net.*;

public class LecteurCap
{
  private URL myURLServeur;

  public LecteurCap(URL  myURLServeur)
  {
//      String protocol = serveur.getProtocol();
//      String host = serveur.getHost();
//      int port = serveur.getPort();

//      String file = serveur.getFile();
//      String path = serveur.getPath();
//      String url  = serveur.toExternalForm();

//      System.out.println("host: " + host);
//      System.out.println("port: " + port);
//      System.out.println("file: " + file);
//      System.out.println("path: " + path);
//      System.out.println("ref: " + url);

//      String urlSuffix = "/servlet/capapplet";
/*
      try
      {
         //servletSuperviseur = new URL(protocol, host, port, urlSuffix);
         servletSuperviseur = new URL(myServeur);
      }
      catch (java.net.MalformedURLException mfue)
      {
      }
*/
      this.myURLServeur = myURLServeur;
  }

  /**
   * ***************************************************************************
   *  acces a la tini via le reseau
   *  **************************************************************************
   */
  public String readCap(String strNumeroBorne)
  {
        String result = "";
        String strResult = execute("?" + strNumeroBorne + "\n");
        System.out.println("message recu: "+ strResult);
        if(strResult.indexOf("=") == 0)
        {
           result  = strResult.substring(1);
        }
        return result;
  }

   public String writeCap(String strNumeroBorne, String code )
  {
     String result = "";
     String strResult = execute("=" + strNumeroBorne + ":" + code + "\n");

     if(strResult.indexOf("=") == 0)
     {
           result  = strResult.substring(1);
     }
     return result;
   }



  private String execute(String ordre)
  {
      String result= "";
      try
      {
          byte[] request = ordre.getBytes();

          URLConnection connexion = myURLServeur.openConnection();
          connexion.setUseCaches(false);
          connexion.setDoOutput(true);
          connexion.setDoInput (true);
          connexion.setAllowUserInteraction(false);
          connexion.setRequestProperty ("Content-Length", Integer.toString (request.length));
          connexion.setRequestProperty ("Content-Type", "text/xml");
          OutputStream out = connexion.getOutputStream ();
          // envoi de la requete..execution sur le serveur..qui renvoie le resultat
          out.write (request);
          out.flush ();
          // recuperation du resultat
          InputStreamReader in = new InputStreamReader(connexion.getInputStream());
          BufferedReader bin = new BufferedReader(in);
          result = bin.readLine();
      }
      catch (Exception x)
      {
          //result = x.toString();
          //x.printStackTrace ();
      }
      finally
      {
          return result;
      }
    }


}